package com.ly.cloud.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.plugins.Page;
import com.ly.cloud.dto.CodeDetailDto;
import com.ly.cloud.vo.CodeDeailFidVo;
import com.ly.cloud.vo.CodeDetailVo;
import com.ly.cloud.vo.CodeMenuVo;

public interface DataDictService {

	/** 
	 * Method Name:  selectCodeList
	 * Description:  
	 * 查询代码分类和代码类别
	 * @param id 代码类别id
	 * @author LuHuaCong
	 * @date: 2018年12月11日
	 */
	List<CodeMenuVo> selectCodeList(Long id);
	
	/** 
	 * Description:  
	 * 根据代码类别id查询代码详情列表
	 * @param page
	 * @param id 代码分类id
	 * @return Page<CodeCategoryVo> 
	 * @author LuHuaCong
	 * @date: 2018年12月11日
	 */
	Page<CodeDetailVo> selectDetailList(Page<CodeDetailVo> page, String id,String condition);
	
	/**
	 * 查询某个代码分类下的所有代码详情
	 * @param dmfl 代码分类编号
	 * @return
	 * @date  2019/1/9
	 */
	Page<CodeDetailVo> selectDmxqByDmfl(Page<CodeDetailVo> page,String dmfl);
	
	/**
	 * Description: 修改代码详情
	 * @param dto	封装对象
	 * @return   是否修改成功   
	 * @author LuHuaCong
	 * @date: 2018年12月11日
	 */
	boolean updateCodeDetail(CodeDetailDto dto);
	
	/** 
	 * Method Name: insert
	 * Description:  
	 * 插入代码详情记录
	 * @param dto 
	 * @author LuHuaCong
	 * @date: 2018年12月12日
	 */
	boolean insert(CodeDetailDto dto,String loginUserName);
	
	/** 
	 * Method Name: deleteDetailById
	 * Description:  
	 * 根据id删除代码详情
	 * @param id 
	 * @author LuHuaCong
	 * @date: 2018年12月12日
	 */
	boolean deleteDetailById(Long id);
	
	/** 
	 * Method Name: deleteDetailByIds
	 * Description:  
	 * 批量删除代码详情
	 * @param ids
	 * @return 删除条数
	 * @author LuHuaCong
	 * @date: 2018年12月12日
	 */
	Integer deleteDetailByIds(List<Long> ids);

	/**
	 * 根据代码类别码（固定）查找对应的分类详情；
	 * @param dmlb
	 * @return
	 */
	List<CodeDetailVo> findDmxqByDmlb(String dmlb);
	
	/** 
	 * Method Name: selectFid
	 * Description:  
	 * 查询fid,下拉列表
	 * 当dmlb为空时，查询所有的fid;当dmlb不为空时，查询该代码类别的fid
	 * param dmlb
	 * @return 父id列表
	 * @author LuHuaCong
	 * @date: 2018年12月20日
	 */
	List<CodeDeailFidVo> selectFid(String dmlb);
	
	/** 
	 * Method Name: selectSourcePlace
	 * Description:  
	 * 选择生源地下拉按钮
	 * @return 生源地列表
	 * @author LuHuaCong
	 * @date: 2018年12月20日
	 */
	List<CodeDetailVo> selectSourcePlace();
	
}
